#ifndef __CINETIC__RENDERER_H__
#define __CINETIC__RENDERER_H__
#pragma once

#include "View.h"

#include "Ogre.h"
#include "RenderSystems/Direct3D9/OgreD3D9RenderSystem.h"

namespace Cinetic
{
	class Renderer : public View
	{
	public:
		Renderer( HWND hWnd, HINSTANCE hInstance );
		~Renderer();

	public:
		void							        draw();

	public: //View interface
		virtual std::shared_ptr<Representation>	create_representation( std::weak_ptr<Object> o );

	private:
		void							        load_resources();

	private:
		Ogre::Root*						m_ogre_root;
		Ogre::D3D9RenderSystem*			m_render_system;
		Ogre::SceneManager*				m_scene_manager;
		Ogre::Camera*					m_camera;
		Ogre::RenderWindow*				m_render_window;
		Ogre::Viewport*					m_viewport;
	};

	
}

#endif